The present invention relates to an electronic musical instrument having with a demonstration performance function.
Recent electronic musical instruments, such as an electronic piano, an electronic organ and a synthesizer, have an automatic performance function. The use of this automatic performance function permits a player to enjoy playing an instrument by playing a specific part while automatically playing several parts. For instance, while generating musical tones of accompaniment parts, such as a drum part, a base part and a chord part, by using the automatic performance function, the player can play a melody part with the timbre of a trumpet.
This automatic performance function is accomplished by a central processing unit (hereinafter referred to as "CPU") incorporated in the electronic musical instrument. When an instruction is given to start the automatic performance, first, the CPU sequentially reads out automatic performance data stored part by part in a memory of a sequencer externally connected to the electronic musical instrument, or in a memory of the electronic musical instrument, and sequentially sends the automatic performance data to individual tone generators associated with the respective parts. Each tone generator generates tone signals of each part based on the received automatic performance data. The tone signals for a plurality of the parts, generated from the individual tone generators, are sent to a loudspeaker to be converted into acoustic signals. Accordingly, the simultaneous performance of a plurality of the parts or an automatic performance is executed.
Since the automatic performance function in a conventional electronic musical instrument is accomplished in the above manner, the same number of the tone generators as the number of the parts is required. The provision of the tone generators equal in number to the parts increases the cost, making it difficult to apply the above structure to other electronic musical instruments than an expensive one. Therefore, recently has been developed a multi-tone generator which will simultaneously generate the musical tones of a plurality of the parts and has become popular.
One of those multi-tone generators, called a multi-timbre tone generator, can efficiently perform the automatic performance, so that active studies and development are made on this tone generator. The multi-timbre tone generator can generate a plurality of timbres at a time, and can arbitrarily select an oscillator that is assigned to the tone generation of each part. In other words, in the multi-timbre tone generator, each oscillator is not assigned previously to each of the parts, the number of the oscillator to be assigned to each part is determined and also it is determined what numbered oscillator is assigned, when tone generation is requested.
In the multi-timbre tone generator, part data including, for example, a program number, volume data and pan-pot data, is stored part by part in a memory area called a "play buffer" before executing the automatic performance of a plurality of the parts. Each oscillator refers to the contents of this play buffer to generate a musical tone that has the timbre, volume, pan-pot, in accordance with the part data.
This play buffer is generally provided in a random access memory (RAM) incorporated in the electronic musical instrument. At the time of power on, the initial values of the part data, which are stored in, for example, a read only memory (ROM), are loaded into the play buffer to determine the initial timbre, volume and pan-pot. Therefore, the initial timbre and so on at the time of conducting the automatic performance are determined by the part data which has been written in the ROM as factory default setting.
Electronic musical instruments having the automatic performance function can carry out a demonstration performance of a predetermined music by using the automatic performance function to generate the musical tones of all the parts (e.g., four parts: drum, bass, chord and melody). That is, a demonstration performance can be said to be a special case of the automatic performance.
The demonstration performance starts in response to an instruction from a control panel or the like. When the demonstration performance starts, the CPU sequentially reads out the automatic performance data for a demonstration music, stored part by part in a memory of a sequencer externally connected to the electronic musical instrument, or in a memory of the electronic musical instrument, and sequentially sends the automatic performance data to individual tone generators associated with the respective parts. Each tone generator generates tone signals of each part based on the received automatic performance data. The tone signals for a plurality of the parts, generated from the individual tone generators, are sent to a loudspeaker to be converted into acoustic signals. Consequently, the demonstration performance is executed through the simultaneous performance of a plurality of the parts. In case of a demonstration performance, the timbre, volume, pan-pot and the like of the demonstration music are also determined by the part data that has been loaded in the play buffer at that time.
Generally, the contents of the play buffer can be altered as needed using the control panel so that the musical tones desired by the user can be generated. This play buffer is initialized at the time of power on. In this initialization, the initial values of the part data previous stored in the ROM are set in the play buffer. Immediately after power on, therefore, the timbre, volume, pan-pot and the like of each part are also determined specifically. To play a specific part with the timbre, volume, pan-pot and the like, the user should alter the contents of the play buffer himself or herself using the control panel.
The alternation of the content of the play buffer should be carried out in the demonstration performance. To execute the demonstration performance immediately after power on, the initial values of the part data loaded in the play buffer should match with the part data used by the individual parts of the demonstration music. If there is no match, the user should use the control panel to alter the contents of the play buffer. To ensure the demonstration performance without altering the contents of the play buffer immediately after power on, therefore, the demonstration music, which is to be played in the electronic musical instrument, must be selected from those pieces of music which are suitable for the initial values of the part data, thus limiting the types of the music pieces that can be used as demonstration music pieces.
In case where the user sets desired part data in the play buffer to interrupt the performance in progress and instructs a demonstration performance, the part data set in the play buffer may not match with the part data the demonstration music needs, disabling the proper demonstration performance. Before starting the demonstration performance, therefore, the user sets part data necessary for the demonstration music in the play buffer, and then starts the demonstration performance. In this case, however, the original contents of the play buffer are destroyed, so that it undesirably takes time to restore the original contents or to return the state in which the instrument had been before the demonstration performance started, after the demonstration performance is completed.